The present invention is related to computer software and more specifically to client-server computer software.
Conventional client-server computer systems allow some or all of a file to be created, modified and read on one or more client computer systems and stored on a server. The server only provides the files it serves to the client computer systems. If computer software applications on the server also use the files, problems can result due to incompatibilities between the file systems used by the applications in the client and the applications in the server. For example, if the server is a mainframe computer system such as a S/390 running the MVS operating system commercially available from IBM Corporation of White Plains, New York and the clients are personal computer systems such as conventional Pentium III compatible systems commercially available from Dell Computer Corporation of Round Rock, Tex. running the Windows 9X/NT operating system commercially available from Microsoft Corporation of Redmond, Wash., certain problems result from the incompatibility of the operating systems of these two types of systems.
Applications running under the Windows operating system request a portion of a file by specifying a byte offset to identify the beginning of the portion and a number of bytes to specify the size of the portion. The first byte need not start on any form of boundary. If several sets of bytes are requested, they may be requested in random order. This type of file access is known as random access, because there are no restrictions on how the access may be performed. On the other hand, applications running under MVS can only request bytes in the order in which they are stored in the file. To request a portion of the file that is stored prior to a portion just requested requires resetting the file. In addition, the requested portion must begin on block or record boundaries.
One way to allow a personal computer to randomly access an MVS file is to download the entire file to the personal computer system, work on it there, and if changes have been made, upload the file back to the mainframe computer system. However, such an approach makes inefficient use of the memory of the personal computer and the network connection between the personal computer and the mainframe computer system.
What is needed is a method and apparatus that can provide a client computer random access to a mainframe file without requiring the client computer to download the entire file.
A method and apparatus caches on the mainframe portions of a file being read and provides from the cache the portion requested by the client computer system, allowing random access to the file. A file being written is enqueued and the entire file may be placed into the cache, written to, and stored onto the mainframe when the file is closed. Any file conversions that will be performed on the mainframe are performed before the portion of the file is stored in the cache, and these conversions are performed according to properties for a folder with which the file is associated by the client computer system.